package com.hhc.repository;

import com.hhc.entity.FileResource;
import java.util.List;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

/**
 * 文件资源仓库接口
 *
 * @author pc
 */
@Repository
public interface FileResourceRepository extends JpaRepository<FileResource, Long> {

    /**
     * 根据原始文件名查找文件资源
     *
     * @param originalName 原始文件名
     * @return Optional<FileResource>
     */
    Optional<FileResource> findByOriginalName(String originalName);

    /**
     * 按分类和关键词搜索文件列表
     *
     * @param category 分类
     * @param keyword 关键词
     * @return List<FileResource>
     */
    @Query("SELECT f FROM FileResource f WHERE (:category IS NULL OR f.category = :category) AND " +
           "(:keyword IS NULL OR f.originalName LIKE %:keyword% OR f.description LIKE %:keyword%)")
    List<FileResource> findByCategoryAndKeyword(@Param("category") String category,
                                                @Param("keyword") String keyword);
}